Computing devices typically include one or more Universal Serial Bus (USB) ports to couple to other computing devices. These USB ports may be operated or controlled in compliance with various USB technical standards or specifications. For example, computing devices may include USB controllers to control the USB ports in accordance with the enhanced Host Controller Interface (eHCI) for USB specification, revision 1.0, published March 2002 or the extensible Host Controller Interface (xHCI) for USB specification, revision 1.0, published May 2010. The eHCI specification is commonly associated with USB controllers configured to operate according to the USB specification version 2.0 (USB2), published April 2000. The xHCI specification is commonly associated with USB controllers configured to operate according to the USB specification version 3.0 (USB3), published November 2008.
USB is based on a hierarchical communication protocol that includes host computing devices coupling to peripherals via USB ports configured to operate in a downstream mode. Meanwhile the peripherals couple to the host computing device via USB ports configured to operate in an upstream mode. The recent and rapid rise in the use of various portable or mobile computing devices such as notebooks, ultra mobile personal computers, tablets or smart phones has resulted in computing devices that may serve as a host computing device (e.g., coupling to external storage or a printer) or a peripheral (e.g., syncing with a desktop or laptop computer). Additional USB ports and controllers with increased capabilities may be needed to allow for portable or mobile computing devices to serve as either a host or a peripheral device.